#include <stdio.h> 
#include <stdlib.h>
#include <string.h>

/*
队列：两端开口，要求：只能从一段进入队列，从另一端出队列

队头和队尾

队头：数据出队列的一端
队尾：数据进队列的一端

一、顺序表 数组

二、链表

*/

/*
 入队
 参数：数组，队尾，数据
 返回值：队尾
*/
int enQueue(int* arr,int rear,int data)
{
    arr[rear]=data;
    rear++;
    return rear;
}

/*
 出队（全部出对）
 参数：数组，队头，队尾
 返回值：无
*/
void deQueue(int* arr,int front,int rear)
{
    //队头==队尾  队列为空
    while(front!=rear)
    {
        printf("now out queue date:%d\n",arr[front]);
        front++;
    }
}


int main()
{

    //数组
    int a[100];
    //队头的，队尾
    int front,rear;
    //当队列没有数组时
    front=rear=0;

    //入队
    rear=enQueue(a,rear,1);
    rear=enQueue(a,rear,2);
    rear=enQueue(a,rear,3);
    rear=enQueue(a,rear,4);
    rear=enQueue(a,rear,5);

    printf("front=%d rear=%d\n",front,rear);
    //出对
    deQueue(a,front,rear);

	//system("pause");
	return 0;
} 